package com.jch.dm.chapter_13_visitor;

import java.util.ArrayList;
import java.util.Iterator;

/**
 * @author: Administrator
 * @create: 2020/04/01 19:22
 **/
public class Directory extends Entry {

    /**
     * 文件夹名
     */
    private String name;
    /**
     * 目录条目集合
     */
    private ArrayList dir = new ArrayList();

    public Directory(String name) {
        this.name = name;
    }

    /**
     * 获取名称
     *
     * @return 名称
     */
    @Override
    public String getName() {
        return name;
    }

    /**
     * 获取大小
     *
     * @return 大小
     */
    @Override
    public int getSize() {
        int size=0;
        Iterator it = dir.iterator();
        while(it.hasNext()){
            Entry entry = (Entry) it.next();
            size+=entry.getSize();
        }
        return size;
    }

    /**
     * 增加目录条目
     * @param entry 条目
     * @return 条目信息
     */
    @Override
    public Entry add(Entry entry){
        dir.add(entry);
        return this;
    }

    /**
     * 生成Iterator
     *
     * @return iterator
     */
    @Override
    public Iterator iterator()  {
        return dir.iterator();
    }

    @Override
    public void accept(Visitor v) {
        v.visit(this);
    }
}
